package com.twu.biblioteca.views;

import com.twu.biblioteca.config.Dispatcher;
import com.twu.biblioteca.config.MenuOption;
import com.twu.biblioteca.config.Message;
import com.twu.biblioteca.models.entities.Menu;
import com.twu.biblioteca.utils.EnterUtil;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class MenuView {
    public static void render() {
        System.out.println("\n------Main Menu------");
        int menuOptionNumber = 0;
        for (MenuOption menuOption : Menu.getMenuOptions()) {
            System.out.println("["+menuOptionNumber +"] " + menuOption);
            menuOptionNumber += 1;
        }
        System.out.println("======================\n");
        MessageView.showNotice(Message.CHOOSE_AN_OPTION_NUMBER, false);

        Dispatcher.dispatch(getChoosedOptionNumber());
    }

    public static int getChoosedOptionNumber() {
        try {
            return EnterUtil.getEnterdNumber();
        } catch (Exception e) {
            handleChoosedInvalidMenuOption();
        }
        return 0;
    }



    public static void handleChoosedInvalidMenuOption() {
        System.err.println(Message.INVALIDE_OPTION);
        MenuView.render();
    }
}
